package aspirecn.project3.controller;

import aspirecn.project3.enums.BizCodeEnum;
import aspirecn.project3.service.FileService;
import aspirecn.project3.util.JsonData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

/**
 * packageName aspirecn.project3.controller
 *
 * @author 邵一宸
 * @version JDK 17
 * @className FileController
 * @date 2024/7/19
 * @description TODO
 */
@RestController
@RequestMapping("/goods/file/v1")
public class FileController {
    @Autowired
    private FileService fileService;

    /**
     * 上传图片
     *  文件上传流程方式：
     *   （1）先上传文件，返回URL地址，再和普通表单一并提交（推荐这种）
     *   （2）文件和普通表单一起提交（涉及流程较多，有时容易超时和失败）
     *  注意：默认 SpringBoot最大文件上传是1M
     */
    @PostMapping(value = "uploadImg")
    public JsonData uploadImg(@RequestPart("file") MultipartFile file, @RequestParam(name = "rootFolder") String rootFolder) {
        String result = fileService.uploadImg(file, rootFolder);
        return result != null ? JsonData.buildSuccess(result) : JsonData.buildResult(BizCodeEnum.FILE_UPLOAD_USER_IMG_FAIL);
    }

}